/**
 * @author 王海建
 * @date 2024-3-4
 * @file 工具函数
 */

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-nocheck

/**
 * 格式化时间
 * 用法：{timeFormat(new Date(), 'yyyy-mm-dd hh:MM:ss')}
 */
export const timeFormat = (dateTime?: Date | string, fmt = 'yyyy-mm-dd') => {
  // 如果为null,则格式化当前时间
  if (!dateTime) dateTime = Number(new Date())
  // 如果dateTime长度为10或者13，则为秒和毫秒的时间戳，如果超过13位，则为其他的时间格式
  if (dateTime.toString().length == 10) dateTime *= 1000
  const date = new Date(dateTime)
  let ret
  const opt = {
    'y+': date.getFullYear().toString(), // 年
    'm+': (date.getMonth() + 1).toString(), // 月
    'd+': date.getDate().toString(), // 日
    'h+': date.getHours().toString(), // 时
    'M+': date.getMinutes().toString(), // 分
    's+': date.getSeconds().toString() // 秒
  }
  for (const k in opt) {
    ret = new RegExp('(' + k + ')').exec(fmt)
    if (ret) {
      fmt = fmt.replace(ret[1], ret[1].length == 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'))
    }
  }
  return fmt
}

/**
 * 格式化金额
 * 用法：{{formatMoney(23232656565)}}
 * 加货币符数字千峰位￥312.123.123.123.00
 * 不加货币符1.123.123
 */
export const formatMoney = (price?: number | string) => {
  if (!price) return '0'
  const newPrices = parseFloat(price.toString())
  return newPrices.toLocaleString('zh-CN', { style: 'currency', currency: 'CNY' })
}
